Currently, many businesses conduct electronic commerce (e-commerce) utilizing a communication network such as the Internet as a means of connectivity to its customers and other businesses. The customers can access a business' web site to request web pages of information from the business. The web site then sends the requested web pages to the customers for their viewing on a user interface. Transfer protocols allow the transfer of data files between different users and different computer application programs in a distributed computing environment. For example, the most common transfer protocol used for transferring data on the Internet is the Hypertext Transfer Protocol (HTTP).
Known transfer protocols suffer from several disadvantages when transferring data over a communication network such as the Internet. For example, one problem with known transfer protocols involves the requirement to establish separate connections to retrieve each requested file. A web page typically comprises a root document file for the main web page and dependent document files referenced by the root document file. The dependent document files can comprise image files such as a JPEG file or a GIF file. Accordingly, when a user requests a web page, the transfer protocol requires a separate connection to transfer the root document file and each dependent document file. Each separate file connection requires overhead on web servers. The overhead can include additional network transfer, processing time, and memory usage. Additionally, each transfer protocol connection requires the exchange of protocol information for downloading the individual files, further increasing the bandwidth required to transfer the data files.
A conventional solution to the problem described above involves maintaining the transfer protocol connection open to allow for multiple file transfers during a single connection. The connection can remain open until all of the protocol and file data has been transferred. While that solution can limit the impact of connection overhead, it does not reduce the transfer protocol information required to download multiple related files.
Another conventional solution to the connection problem involves storing a number of files in an archive file and transferring the archive file over the communication network. However, to create the archive file, the user must manually select each document to include in the archive file. Additionally, when the archive file is received, it must be stored on a local storage medium and manually opened to separate the files. The user also must manually select which file to open after the files have been separated.
Another problem with known transfer protocols involves the transfer of only raw data. The raw data comprises uncompressed data, which can require large amounts of bandwidth to transfer it over the Internet. A conventional solution to that problem involves content encoding (compression), which reduces the data file's size. Content encoding can allow individual files to be compressed using one of several well-known compression methods prior to transfer. However, conventional methods only allow transfer of individual compressed files. Accordingly, that solution still requires the transfer protocol information for the transfer of each individual data file.
Finally, conventional transfer protocols cannot present web page data in a specified order. The data files are presented to the user in the order in which they are received. Even if the data files are transmitted in the desired order, the data files can arrive at the end user in a different order. Accordingly, the data files may be presented out of the desired order.
Conventional compression methods also contribute to inefficiencies in compressing the data files. For example, some conventional compression methods allow only one compression algorithm or sequence of compression algorithms to compress a file. More advanced compression techniques can allow choosing one of several methods for compressing an entire file or archive. However, those conventional techniques do not allow allocation of the most effective compression method to individual data files or data blocks. Accordingly, conventional compression techniques may use an inferior compression method on a data type.
Accordingly, there is a need in the art for a system and method that overcome the problems discussed above for transferring data files over a communication network. Specifically, a need exists for a system and method that can allocate the most efficient compression method to different data files or data blocks of those data files. A need in the art also exists for an efficient compression system and method that can compress data blocks in parallel to reduce the compression processing time. Furthermore, a need in the art exists for a compression system and method that can force the decompression order of data blocks or files, thereby forcing the presentation order of the data to a user.